Python Imaging Library
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
top
Python Imaging Library is a free and open-source additional library for the Python programming language that adds support for opening, manipulating, and saving many different image file formats. It is available for Windows, Mac OS X and Linux. The latest version of PIL is 1.1.7, was released in September 2009 and supports Python 1.5.2–2.7.cite-ref-website-3-1[3]
Development of the original project, known as PIL, was discontinued in 2011.cite-ref-hg-2-1[2] Subsequently, a successor project named Pillow forked the PIL repository and added Python 3.x support.cite-ref-pillow-5-0[5] This fork has been adopted as a replacement for the original PIL in Linux distributions including Debiancite-ref-6[6] and Ubuntu (since 13.04).cite-ref-7[7]
Contents
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
Capabilities
PIL offers several standard procedures for image manipulation. These include:
• per-pixel manipulations,cite-ref-8[8]
• masking and transparency handling,
• image filtering, such as blurring, contouring, smoothing, or edge finding,cite-ref-9[9]
• image enhancing, such as sharpening, adjusting brightness, contrast or color,cite-ref-10[10]
• adding text
File formats
Programming examples
import os
from PIL import Image
def convert_jpegs_to_pngs(folder_path):
# Checks if the provided path is a folder
if not os.path.isdir(folder_path):
print(f"Error: {folder_path} is not a valid folder.")
return
# Iterates over all files in the folder
for filename in os.listdir(folder_path):
# Checks if the file has a .jpg or .jpeg extension
if filename.lower().endswith(".jpg") or filename.lower().endswith(".jpeg"):
# Full path of the file
jpeg_path = os.path.join(folder_path, filename)
# Path for the converted file
png_path = os.path.join(folder_path, os.path.splitext(filename)[0] + ".png")
try:
# Opens the JPEG image
with Image.open(jpeg_path) as img:
# Converts and saves as PNG
img.save(png_path, "PNG")
print(f"Converted {jpeg_path} to {png_path}")
except Exception as e:
print(f"Error converting {jpeg_path}: {e}")
References
cite-note-license-11. "Software License". Secret Labs AB. Archived from the original on 20 July 2020. Retrieved December 8, 2013.
cite-note-hg-22. "effbot / pil-2009-raclette". Archived from the original on 15 March 2015. Retrieved December 8, 2013.
cite-note-website-33. "Python Imaging Library". Secret Labs AB. Archived from the original on 21 November 2020. Retrieved December 8, 2013.
cite-note-42. "Release Notes". Pillow (PIL Fork) Documentation. Retrieved February 5, 2025.
cite-note-pillow-55. ↑ "Pillow: a modern fork of PIL". Retrieved December 8, 2013.
cite-note-66. ↑ "Details of package python-imaging in sid". packages.debian.org. Software in the Public Interest. Retrieved December 8, 2013.
cite-note-77. ↑ "Details of package python-imaging in raring". ubuntu.com. Canonical Ltd. Retrieved December 8, 2013.
cite-note-88. ↑ "PyAccess Module". readthedocs.io. Retrieved September 20, 2024.
cite-note-99. ↑ "ImageFilter Module". readthedocs.io. Retrieved September 20, 2024.
cite-note-1010. ↑ "ImageColor Module". readthedocs.io. Retrieved September 20, 2024.
cite-note-1111. ↑ "D. Writing Your Own File Decoder". Effbot.org. Retrieved 2014-01-28.
External links
• Official website
• PIL Library reference
• Python Imaging Library at Wikibooks
• Pillow (Successor project)
• PIL Tutorial Examples